package com.tn.openrpc.channel
{
	import mx.rpc.AsyncToken;

	/**
	 * The interface to an object that provides connectivity to a remote process.
	 */
	public interface IRemoteChannel
	{
		/**
		 * Returns the <code>AsyncToken</code> received after sending the <code>remoteChannelRequest</code>.
		 *
		 * @throws RemoteChannelError          the error thrown an error occurs related to the channel.
		 * @throws com.tn.openrpc.TimeoutError the error thrown if a response is not received in the allowed time.
		 */
		function send(remoteChannelRequest:RemoteChannelRequest):AsyncToken;
	}
}
